package dominio;
// Generated 5/11/2014 06:32:33 PM by Hibernate Tools 3.2.1.GA


import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.UniqueConstraint;

/**
 * Usuario generated by hbm2java
 */
@Entity
@Table(name="usuario"
    ,catalog="siscote"
    , uniqueConstraints = {@UniqueConstraint(columnNames="Password"), @UniqueConstraint(columnNames="Username"), @UniqueConstraint(columnNames="Codigo")} 
)
public class Usuario  implements java.io.Serializable {


     private Integer idUsuario;
     private Roles roles;
     private String codigo;
     private String username;
     private String password;
     private String nombres;
     private String apellidoPaterno;
     private String apellidoMaterno;
     private String DNI;
     private Date fechaRegistro;
     private String correo;
     private boolean estado;

    public Usuario() {
    }

    public Usuario(String username, Roles roles, String nombres, String apellidoPaterno, String apellidoMaterno, boolean estado) {
       this.username = username;
       this.roles = roles;
       this.nombres = nombres;
       this.apellidoPaterno = apellidoPaterno;
       this.apellidoMaterno = apellidoMaterno;
       this.estado = estado;
    }
    
    public Usuario(Roles roles, String codigo, String username, String password, String nombres, String apellidoPaterno, String apellidoMaterno, boolean estado) {
       this.roles = roles;
       this.codigo = codigo;
       this.username = username;
       this.password = password;
       this.nombres = nombres;
       this.apellidoPaterno = apellidoPaterno;
       this.apellidoMaterno = apellidoMaterno;
       this.estado = estado;
    }

    public Usuario(String username, String password, String nombres,
            String apellidoPaterno, String apellidoMaterno, String DNI,
            Date fechaRegistro, String correo, boolean estado, Roles roles) {
        this.codigo = DNI;
        this.username = username;
        this.password = password;
        this.nombres = nombres;
        this.apellidoPaterno = apellidoPaterno;
        this.apellidoMaterno = apellidoMaterno;
        this.DNI = DNI;
        this.fechaRegistro = fechaRegistro;
        this.correo = correo;
        this.estado = estado;
        this.roles = roles;
    }  
   
     @Id @GeneratedValue(strategy=IDENTITY)
    
    @Column(name="idUsuario", unique=true, nullable=false)
    public Integer getIdUsuario() {
        return this.idUsuario;
    }
    
    public void setIdUsuario(Integer idUsuario) {
        this.idUsuario = idUsuario;
    }
@ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="Roles_idRoles", nullable=false)
    public Roles getRoles() {
        return this.roles;
    }
    
    public void setRoles(Roles roles) {
        this.roles = roles;
    }
    
    @Column(name="Codigo", unique=true, nullable=false, length=45)
    public String getCodigo() {
        return this.codigo;
    }
    
    public void setCodigo(String codigo) {
        this.codigo = codigo;
    }
    
    @Column(name="Username", unique=true, nullable=false, length=45)
    public String getUsername() {
        return this.username;
    }
    
    public void setUsername(String username) {
        this.username = username;
    }
    
    @Column(name="Password", unique=true, nullable=false, length=45)
    public String getPassword() {
        return this.password;
    }
    
    public void setPassword(String password) {
        this.password = password;
    }
    
    @Column(name="Nombres", nullable=false, length=45)
    public String getNombres() {
        return this.nombres;
    }
    
    public void setNombres(String nombres) {
        this.nombres = nombres;
    }
    
    @Column(name="ApellidoPaterno", nullable=false, length=45)
    public String getApellidoPaterno() {
        return this.apellidoPaterno;
    }
    
    public void setApellidoPaterno(String apellidoPaterno) {
        this.apellidoPaterno = apellidoPaterno;
    }
    
    @Column(name="ApellidoMaterno", nullable=false, length=45)
    public String getApellidoMaterno() {
        return this.apellidoMaterno;
    }
    
    public void setApellidoMaterno(String apellidoMaterno) {
        this.apellidoMaterno = apellidoMaterno;
    }
    
    @Column(name="DNI", nullable=false, length=8)
    public String getDNI() {
        return this.DNI;
    }
    
    public void setDNI(String DNI) {
        this.DNI = DNI;
    }
    
    @Temporal(TemporalType.TIMESTAMP)
    @Column(name="FechaRegistro", nullable=false, length=19)
    public Date getFechaRegistro() {
        return this.fechaRegistro;
    }
    
    public void setFechaRegistro(Date fechaRegistro) {
        this.fechaRegistro = fechaRegistro;
    }
    
    @Column(name="Correo", nullable=false, length=20)
    public String getCorreo() {
        return this.correo;
    }
    
    public void setCorreo(String correo) {
        this.correo = correo;
    }
    
    @Column(name="Estado", nullable=false)
    public boolean isEstado() {
        return this.estado;
    }
    
    public void setEstado(boolean estado) {
        this.estado = estado;
    }




}


